package com.quxue.im.service;

import com.quxue.im.common.enums.PushMsgEnum;
import com.quxue.im.common.enums.PushNoticeEnum;
import com.quxue.im.entity.ChatMsg;
import com.baomidou.mybatisplus.extension.service.IService;
import com.quxue.im.req.chat.ChatMsgReq;
import com.quxue.im.vo.chat.ChatMsgVo;
import com.quxue.im.vo.push.PushNoticeVo;
import com.quxue.im.vo.push.PushParamVo;

/**
 * <p>
 * 聊天消息 服务类
 * </p>
 *
 * @author jinken
 * @since 2023-11-10
 */
public interface IChatMsgService extends IService<ChatMsg> {


    /**
     * 发送通知
     * 1，好友申请
     * 2，评论恢复
     * 3，点赞
     * @param noticeVo
     * @param noticeType
     */
    void pushNotification(PushParamVo noticeVo, PushNoticeEnum noticeType);

    /**
     * 发送消息
     *
     * @param noticeVo
     * @param msgType
     */
    void pushMessage(PushParamVo noticeVo, PushMsgEnum msgType);

    /**
     * 好友发送消息
     * @param msgReq
     * @return
     */
    ChatMsgVo sendFriendMsg(ChatMsgReq msgReq);

    /**
     * 拉取离线消息
     */
    void pullMsg(Long userId);
}
